/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package suac.pessoaref;

import java.io.Serializable;
import java.util.Date;
import java.util.List;
import java.util.Objects;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.Id;
import javax.persistence.JoinColumn;
import javax.persistence.ManyToOne;
import javax.persistence.OneToMany;
import javax.persistence.Table;
import javax.persistence.Temporal;
import javax.persistence.TemporalType;
import org.hibernate.annotations.ManyToAny;
import suac.dependente.Dependente;
import suac.familia.Familia;

/**
 *
 * @author acer
 */
@Entity
@Table(name = "pessoaref")
public class PessoaRef implements Serializable {

    @Override
    public int hashCode() {
        int hash = 7;
        hash = 89 * hash + this.idPessoaRef;
        hash = 89 * hash + Objects.hashCode(this.nome);
        hash = 89 * hash + (int) (this.cpf ^ (this.cpf >>> 32));
        hash = 89 * hash + Objects.hashCode(this.rg);
        hash = 89 * hash + Objects.hashCode(this.apelido);
        hash = 89 * hash + Objects.hashCode(this.nis);
        hash = 89 * hash + Objects.hashCode(this.pai);
        hash = 89 * hash + Objects.hashCode(this.mae);
        hash = 89 * hash + Objects.hashCode(this.dataNascimento);
        hash = 89 * hash + Objects.hashCode(this.dependente);
        hash = 89 * hash + Objects.hashCode(this.pessoaref);
        return hash;
    }

    @Override
    public boolean equals(Object obj) {
        if (obj == null) {
            return false;
        }
        if (getClass() != obj.getClass()) {
            return false;
        }
        final PessoaRef other = (PessoaRef) obj;
        if (this.idPessoaRef != other.idPessoaRef) {
            return false;
        }
        if (!Objects.equals(this.nome, other.nome)) {
            return false;
        }
        if (this.cpf != other.cpf) {
            return false;
        }
        if (!Objects.equals(this.rg, other.rg)) {
            return false;
        }
        if (!Objects.equals(this.apelido, other.apelido)) {
            return false;
        }
        if (!Objects.equals(this.nis, other.nis)) {
            return false;
        }
        if (!Objects.equals(this.pai, other.pai)) {
            return false;
        }
        if (!Objects.equals(this.mae, other.mae)) {
            return false;
        }
        if (!Objects.equals(this.dataNascimento, other.dataNascimento)) {
            return false;
        }
        if (!Objects.equals(this.dependente, other.dependente)) {
            return false;
        }
        if (!Objects.equals(this.pessoaref, other.pessoaref)) {
            return false;
        }
        return true;
    }
    

    @Id // chave primária
    @GeneratedValue // campo auto incremento
    private short idPessoaRef;
    @Column(length = 50, nullable = false)
    private String nome;
    @Column(length = 12, nullable = false)
    private long cpf;
    @Column(length = 16, nullable = false)
    private String rg;
    @Column(length = 40, nullable = false)
    private String apelido;
    @Column(length = 11, nullable = false)
    private String nis;
    @Column(length = 70, nullable = false)
    private String pai;
    @Column(length = 70, nullable = false)
    private String mae;
    @Temporal(TemporalType.DATE)
    @Column(length = 9, nullable = false)
    private Date dataNascimento;
    @OneToMany(mappedBy = "dependente")
    private List<Dependente> dependente;
    @ManyToOne
    @JoinColumn(name = "idfamilia")
    private Familia pessoaref;

    public short getIdPessoaRef() {
        return idPessoaRef;
    }

    public void setIdpessoaref(short idpessoaref) {
        this.setIdPessoaRef(idpessoaref);
    }

    public String getNome() {
        return nome;
    }

    public void setNome(String nome) {
        this.nome = nome;
    }

    public Date getDataNascimento() {
        return dataNascimento;
    }

    public void setDataNascimento(Date dataNascimento) {
        this.dataNascimento = dataNascimento;
    }

    public Familia getPessoaref() {
        return pessoaref;
    }

    public void setPessoaref(Familia pessoaref) {
        this.pessoaref = pessoaref;
    }

    public List<Dependente> getDependente() {
        return dependente;
    }

    public void setDependente(List<Dependente> dependete) {
        this.dependente = dependete;
    }

    public void setIdPessoaRef(short idPessoaRef) {
        this.idPessoaRef = idPessoaRef;
    }

    public long getCpf() {
        return cpf;
    }

    public void setCpf(long cpf) {
        this.cpf = cpf;
    }

    public String getRg() {
        return rg;
    }

    public void setRg(String rg) {
        this.rg = rg;
    }

    public String getApelido() {
        return apelido;
    }

    public void setApelido(String apelido) {
        this.apelido = apelido;
    }

    public String getNis() {
        return nis;
    }

    public void setNis(String nis) {
        this.nis = nis;
    }

    public String getPai() {
        return pai;
    }

    public void setPai(String pai) {
        this.pai = pai;
    }

    public String getMae() {
        return mae;
    }

    public void setMae(String mae) {
        this.mae = mae;
    }
    private static final long serialVersionUID = 8056285268039867442L;
}